#include <iostream>

using namespace std;

// C++语言增强一：变量检查
// C++语言中对重复变量进行了检查，重复变量会提示，在C语言中，不会检查重复，会对重复的变量重新赋值
int g_val;
//int g_val = 10;

struct student{
	char name[64];
};

// C++语言增强三：返回值类型检测，和形参检测
// C++中需要显示指定方法的返回类型，并且在调用的时候，实参类型必须要形参一一对应。
int g(int age){
	return age;
}

// C++语言增强四：bool类型
// C++中使用true，false表示真假，和C语言中的0或者非0的表示区别
bool flag = true;
bool sym = false;

int main(int argc, char *argv[]) {


	// prints
	cout << "12345" << endl;

	// C++语言增强二：结构体不需要显示声明
	// C++中不需要对结构体显示声明struct关键字，C语言中必须显示声明struct student stu;
	student stu;

	cout << g(60)*g(10) << endl;

	// bool中true表示1，false表示0，一个字节
	cout << flag << endl;
	cout << sym << endl;
	cout << sizeof(flag) << endl;


	// 三元运算符
	int a = 10;
	int b = 20;
	int c = a < b ? true : false;
	cout << c << endl;
	// C语言中，三元表达式如果想放在左边，需要返回是一个地址
	*(a < b ? &a : &b) = 50;
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	// C++语言中，三元表示可以当做左值，返回的是变量的引用地址
	(a < b ? a : b) = 50;
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;

	return 0;

}



